package com.lee.app.service;

        import com.lee.app.entity.Permission;
        import com.lee.app.entity.User;
        import org.apache.ibatis.annotations.Param;

        import java.util.List;

/**
 * @author Lee
 */
public interface UserService {
    /**
     * 通过账号密码来进行登录
     *
     * @param user 包含了账号和密码的用户实体
     * @return 登录成功返回一条对应的用户信息，登录失败返回null
     */
    User login(User user);

    /**
     * 查询全部用户信息，包括用户编号
     *
     * @return 全部用户信息，包括用户编号
     */
    List<User> list();


    /**
     * 根据主键查询一条用户信息，包括用户编号
     *
     * @param id 用户主键
     * @return 一条用户信息，包括用户编号
     */
    User selectById(Integer id);

    /**
     * 添加一条用户记录
     *
     * @param user    用户实体
     * @param roleIds 用户角色数组
     */
    void insert(User user, Integer[] roleIds);

    /**
     * 通过主键修改用户信息
     *
     * @param user    用户实体
     * @param roleIds 用户角色编号数组
     */
    void updateById(User user, Integer[] roleIds);

    /**
     * 按照用户主键删除用户信息
     * @param id 用户主键
     */
    void deleteById(Integer id);
}
